1. Field of the Invention
This invention relates to integrated circuits and, more particularly, to an interface circuit and method for communicating with an integrated circuit via the power supply pin.
2. Description of the Related Art
The following descriptions and examples are given as background only.
An integrated circuit (IC) may be described as “nonprogrammable” if its configuration is fixed at the time of manufacture. For example, a great number of “standard” ICs are made using fixed mask sets (e.g., masked ROMs or masked gate arrays). These ICs can be purchased from catalogs based on published specifications. “Custom” or “semi-custom” ICs are also considered to be nonprogrammable. A “custom” IC is one that is built for a specific purpose for a specific customer. In order to make a custom IC, a custom mask is made to establish memory contents or logic networks at the time of manufacture. Although the mask is specified by the customer, it is nonetheless fixed, and cannot be altered once the IC is packaged.
In contrast, the configuration of a “programmable” device is not fixed and may be programmed after the device is manufactured. This feature offers many advantages over nonprogrammable devices from the perspective of the circuit board manufacture. One advantage is that memory contents and logic designs need not be finalized until late in the manufacturing process. This reduces lead time and time-to-market by making it possible to begin board manufacturing before logic designs are fully completed.
In some cases, an integrated circuit may be described as “programmable” if the IC contains nonvolatile storage. Nonvolatile storage is used for many purposes in many different kinds of programmable devices. Examples of programmable devices having nonvolatile storage include, but are not limited to, programmable logic devices (PLD), programmable logic and gate arrays (e.g., PAL, GAL and FPGA), microcontrollers, microprocessors, programmable clock chips, and other digital and analog ICs. Among other things, digital ICs may use nonvolatile storage to store CPU instructions, configuration settings, calibration data, log measurement data and other types of information well known to those skilled in the art. On the other hand, analog ICs may use nonvolatile storage to hold potentiometer adjustment settings, to provide lookup tables for analog functions, and to hold trim settings for high-precision clock devices.
Examples of nonvolatile storage include, but are not limited to, Programmable Read-Only Memory (PROM), Electrically Erasable PROM (EEPROM), Magnetic Random Access Memory (MRAM) and various types of Flash memory. Flash memory is commonly used for storing microprocessor instruction codes. Due to its relatively high density (silicon area/storage unit), Flash memory is also used in many consumer storage applications. Nonvolatile memories are also found within many microcontrollers. For example, some microcontrollers include Flash and/or EEPROM.
In general, programmable devices are differentiated into One-Time Programmable (OTP) devices and reprogrammable devices. OTP and reprogrammable devices are often used for development and prototyping, in addition to lower volume and higher value products. Although these devices may be programmed by the customer, the logistics of programming ICs in large quantities can be troublesome in the product manufacturing environment. For this reason, many customers ask the IC or board manufacturer to program the ICs during manufacture.
Reprogrammable devices offer many advantageous over OTP devices. As noted above, many customers ask the IC or board manufacturer to program OTP devices at the time of manufacture. However, because the customer receives pre-programmed devices, the customer must maintain inventory of each differently programmed device. Reprogrammable devices reduce inventory needs and hardware costs by enabling the customer to program devices as needed.
In addition, OTP devices may only be programmed with very general purpose information (e.g., CPU instruction software or the device serial number). For example, it is not practical to program OTP devices with manufacturing and quality data or individual product-specific data (e.g., configuration and calibration data), as in many cases this data may need to be programmed multiple times. This makes it difficult, if not impossible, to “tweak” the device (e.g., by setting calibration data) after the device is manufactured. Since product-specific information may be stored within reprogrammable devices, they enable engineering changes (e.g., bug fixes and firmware upgrades) to be made quickly and at any time, thereby reducing lead time and time-to-market.
“In System Reprogrammability” (ISR) is often described as the ability to program (or reprogram) an integrated circuit after the circuit is embedded onto a circuit board. The advantages of ISR are well recognized in the world of high volume product manufacturing. For example, ISR enables software instructions to be programmed into a device with a CPU after the device has been fully assembled. Most ISR devices use dedicated I/O pins and standard bus protocols for programming integrated circuits “in-system.” Examples of standard bus protocols include, but are not limited to, I2C (Inter-IC bus), SPI (Serial Peripheral Interface) and JTAG (Joint Test Action Group). These bus protocols are well known in the art of electronic circuit design and will not be described further herein.
Problems arise with conventional ISR circuits and methods. For example, conventional ISR circuits require at least one dedicated pin to be included on the IC for programming purposes. Because some ICs have very few I/O pins (e.g., as few as 6 I/O pins for some microcontrollers), dedicated pins tend to significantly increase the size and cost of the embedded IC. In addition, ISR is generally not possible once the circuit board has been placed in the final product enclosure, unless a special programming connector is exposed to the customer.
Therefore, a need exists for an improved circuit and method for programming an integrated circuit. More specifically, a need exists for an improved ISR method that enables an embedded integrated circuit to be programmed (or reprogrammed) without using any dedicated programming pins.